<?php

class Categoria {

    private $idCategoria;
    private $catDescricao;
    //variaveis internas
    private $bd; //conexão com o banco

    public function __construct() {
        $this->bd = new bd();
    }

    public function __get($key) {
        return $this->$key;
    }

    //método de retorno de valores do objeto
    public function __set($key, $value) {
        $this->$key = $value;
    }

    //METODOS
    //BANCO DE DADOS
    public function inserir($complemento = "") {

        $sql = "INSERT INTO categoria (catdescricao)
                VALUES ('$this->catDescricao')"
                . " $complemento";

        $retorno = pg_query($sql);

        return $retorno;
    }

// --------------------------------------------------------------------------
    public function listar($complemento = "") {
        $sql = "SELECT * FROM categoria " . $complemento;

        $resultado = pg_query($sql);
        $retorno = NULL;

        //percorre os registros
        while ($reg = pg_fetch_assoc($resultado)) {
            //transforma em objetos categoria
            $obj = new Categoria();
            $obj->idCategoria = $reg["idcategoria"];
            $obj->catDescricao = $reg["catdescricao"];

            //adiciona a variavel de retorno
            $retorno[] = $obj;
        }
        return $retorno;
    }

// --------------------------------------------------------------------------
    public function excluir() {

        $sql = "UPDATE categoria SET ativo=0 WHERE idcategoria=$this->idCategoria";
        $retorno = pg_query($sql);
        return $retorno;
    }

// --------------------------------------------------------------------------
    public function atualizar() {
        $retorno = false;                                 // nome dos campos
        $sql = "UPDATE categoria SET
                     catdescricao       ='$this->catDescricao'
                     where idcategoria   ='$this->idCategoria'";
        $retorno = pg_query($sql);

        return $retorno;
    }

// --------------------------------------------------------------------------
    public function retornarUnico() {
        $sql = "SELECT categoria.* FROM categoria WHERE ativo=1 and idcategoria='$this->idCategoria'";
        $resultado = pg_query($sql);
        $retorno = NULL;

        $req = pg_fetch_assoc($resultado);
        if ($req == true) {
            $obj = new Categoria();
            $obj->idCategoria = $req["idcategoria"];
            $obj->catDescricao = $req["catdescricao"];

            $retorno = $obj;
        }
        return $retorno;
    }

// --------------------------------------------------------------------------
    public function listarJoin($complemento = "") {

        $sql = "SELECT categoria.*
        FROM categoria
         " . $complemento;


        $resultado = pg_query($sql);
        $retorno = NULL;

        //percorre os registros
        while ($reg = pg_fetch_assoc($resultado)) {
            //transforma em objetos categoria
            $obj = new Categoria();
            $obj->idCategoria = $reg["idcategoria"];
            $obj->catDescricao = $reg["catdescricao"];

            //adiciona a variavel de retorno
            $retorno[] = $obj;
        }
        return $retorno;
    }

// --------------------------------------------------------------------------
    public function validaExclusao($id) {
        $sql = "SELECT produto.* "
                . " FROM produto"
                . " JOIN categoria ON produto.categoria = categoria.idcategoria"
                . " WHERE ativo=1 and categoria.idcategoria = $id;";

        $result = pg_query($sql);

        $retorno = pg_num_rows($result);

        return $retorno;
    }

// --------------------------------------------------------------------------
    public function categoriaTipo() {

        $sql = "SELECT idtipo,desctipo FROM tipo WHERE ativo=1 ORDER BY 2";
        $cat = pg_query($sql);
        while ($linha = pg_fetch_assoc($cat)) {
            echo "<option value=\"{$linha['idtipo']}\"> {$linha['desctipo']} </option>";
        }
    }

// --------------------------------------------------------------------------
    public function categoriaTipoEditar($id) {

        $sql = "SELECT * FROM usuario WHERE ativo=1 AND idusuario=" . $id;
        $result = pg_query($sql);
        $usuario = pg_fetch_assoc($result);

        $sql = "SELECT idtipo,desctipo FROM tipo WHERE ativo=1 ORDER BY 2";
        $cat = pg_query($sql);

        while ($linha = pg_fetch_assoc($cat)) {
            if ($usuario['tipo'] == $linha['idtipo']) {
                echo "<option selected=\"true\" value=\"{$linha['idtipo']}\"> {$linha['desctipo']} </option>";
            } else {
                echo "<option value=\"{$linha['idtipo']}\"> {$linha['desctipo']} </option>";
            }
        }
    }

}
